package com.github.kotvertolet.youtubejextractor.models.newModels;

import com.google.gson.annotations.SerializedName;
import ohos.utils.Parcel;
import ohos.utils.Sequenceable;

import java.io.Serializable;

public class WebPlayerActionsPorting implements Sequenceable, Serializable {

    @SerializedName("removeFromWatchLaterCommand")
    private RemoveFromWatchLaterCommand removeFromWatchLaterCommand;
    @SerializedName("subscribeCommand")
    private SubscribeCommand subscribeCommand;
    @SerializedName("getSharePanelCommand")
    private GetSharePanelCommand getSharePanelCommand;
    @SerializedName("unsubscribeCommand")
    private UnsubscribeCommand unsubscribeCommand;
    @SerializedName("addToWatchLaterCommand")
    private AddToWatchLaterCommand addToWatchLaterCommand;


    public static final Sequenceable.Producer<WebPlayerActionsPorting> CREATOR = new Producer<WebPlayerActionsPorting>() {
        @Override
        public WebPlayerActionsPorting createFromParcel(Parcel parcel) {
            // Initialize an instance first, then do customized unmarshlling.
            WebPlayerActionsPorting webPlayerActionsPorting = new WebPlayerActionsPorting();
            webPlayerActionsPorting.unmarshalling(parcel);
            return webPlayerActionsPorting;
        }
    };
    
    @Override
    public boolean marshalling(Parcel parcel) {
        parcel.writeSequenceable(this.removeFromWatchLaterCommand);
        parcel.writeSequenceable(this.subscribeCommand);
        parcel.writeSequenceable(this.getSharePanelCommand);
        parcel.writeSequenceable(this.unsubscribeCommand);
        parcel.writeSequenceable(this.addToWatchLaterCommand);
        return true;
    }

    @Override
    public boolean unmarshalling(Parcel parcel) {
        parcel.readSequenceable(this.removeFromWatchLaterCommand);
        parcel.readSequenceable(this.subscribeCommand);
        parcel.readSequenceable(this.getSharePanelCommand);
        parcel.readSequenceable(this.unsubscribeCommand);
        parcel.readSequenceable(this.addToWatchLaterCommand);
        return true;
    }


    public RemoveFromWatchLaterCommand getRemoveFromWatchLaterCommand() {
        return removeFromWatchLaterCommand;
    }

    public void setRemoveFromWatchLaterCommand(RemoveFromWatchLaterCommand removeFromWatchLaterCommand) {
        this.removeFromWatchLaterCommand = removeFromWatchLaterCommand;
    }

    public SubscribeCommand getSubscribeCommand() {
        return subscribeCommand;
    }

    public void setSubscribeCommand(SubscribeCommand subscribeCommand) {
        this.subscribeCommand = subscribeCommand;
    }

    public GetSharePanelCommand getGetSharePanelCommand() {
        return getSharePanelCommand;
    }

    public void setGetSharePanelCommand(GetSharePanelCommand getSharePanelCommand) {
        this.getSharePanelCommand = getSharePanelCommand;
    }

    public UnsubscribeCommand getUnsubscribeCommand() {
        return unsubscribeCommand;
    }

    public void setUnsubscribeCommand(UnsubscribeCommand unsubscribeCommand) {
        this.unsubscribeCommand = unsubscribeCommand;
    }

    public AddToWatchLaterCommand getAddToWatchLaterCommand() {
        return addToWatchLaterCommand;
    }

    public void setAddToWatchLaterCommand(AddToWatchLaterCommand addToWatchLaterCommand) {
        this.addToWatchLaterCommand = addToWatchLaterCommand;
    }

    @Override
    public String toString() {
        return "WebPlayerActionsPorting{" +
                "removeFromWatchLaterCommand=" + removeFromWatchLaterCommand +
                ", subscribeCommand=" + subscribeCommand +
                ", getSharePanelCommand=" + getSharePanelCommand +
                ", unsubscribeCommand=" + unsubscribeCommand +
                ", addToWatchLaterCommand=" + addToWatchLaterCommand +
                '}';
    }
}
